home *** CD-ROM | disk | FTP | other *** search
/ Wayzata's Best of Shareware PC/Windows 1 / Wayzata's Best of Shareware for PC-Windows - Release 1 - Wayzata Technology (1993).iso / mac / DOS / DATABASE / SCHOP11 / SCHEDOP.DOC < prev    next >
Text File  |  1993-04-09  |  25KB  |  615 lines

  1.  
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9.  
  10.  
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17.  
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32. -----------------------------------------
  33. SCHEDULE OPTIMIZER v1.1
  34. by
  35. Noel Llopis
  36. -----------------------------------------
  37. (c) NLL SOFT - 1993
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.      INTRODUCTION.
  61.  
  62.      So what's this SCHEDULE OPTIMIZER all about? Is it going
  63. to solve all your problems and give you your long dreamed
  64. schedule? No, it is not. It is going to help you a great deal
  65. if you are debating about what classes to take or how to make
  66. them fit in your schedule the best way possible. Instead of
  67. spending hours and hours trying different combinations hoping
  68. to get that other class to fit (as I certainly did!), just
  69. enter them in SCHEDULE OPTIMIZER and let the program show you
  70. all possibilities, and then pick the best schedule exactly the
  71. way you would want it. How is that possible that a "dumb"
  72. machine is going to make a "smart" choice for you? Just... read
  73. the book, OK?
  74.  
  75.      A couple things on this version of the program,
  76. the second release. As it is right now I have concentrated all
  77. my efforts in the inner workings of the program: the algorithms
  78. to calculate all possible combinations, to pick the best
  79. schedule, etc. The user interface and the presentation on the
  80. screen could have been better, but I needed to have a working
  81. version of this program to put my Spring '93 schedule together.
  82. Now that I have it I will start working on a "windowed"
  83. environment (possibly with Turbo Vision) with mouse support and
  84. all that neat stuff. So I'd say that version 2.00 of this
  85. program should be ready in a couple months or so. Versions 1.XX
  86. are just in case there are any bugs that need correction... and
  87. talking about bugs, to make the debugging process faster I will
  88. offer a free registered version of this program to the first
  89. person that reports any bug in the program (that is, a bug that
  90. hasn't been reported before). So if you find any, contact me as
  91. soon as possible.
  92.  
  93.      This program was designed with the UMASS class scheduling
  94. system in mind, but I left if general enough so it can be used
  95. for any other university... or almost for any other thing with
  96. a schedule involved in it. Maybe there are some options that
  97. would come very helpfull for other class systems. If so,
  98. please, don't hesitate to send some feedback so I will be able
  99. to improve it for future versions.
  100.  
  101.      And finally a word about Shareware (is there really
  102. anybody that still doesn't know what Shareware is?). This
  103. program is Shareware. You can copy and give this program freely
  104. (we are talking about the UNREGISTERED version) and try it for
  105. as long as you want, but if you want the REGISTERED version
  106. (=fully working version) you will have to pay a small fee and I
  107. will send it to you. Both versions are almost identical, the
  108. only differences being that in the unregistered version you
  109. can't save the classes and you can't compute the best schedule.
  110. So if after what you see here you think you might seriously
  111. want to use this program, I would urge you to register it. By
  112. registering it you will not only get the fully functional
  113. version, but you will have the right to technical support, you
  114. will be included in our mailing list and you will periodically
  115. receive the new releases from NLL SOFT. By the way, that
  116. REGISTERED version will NOT be Shareware, and any copies you
  117. make of it will be illegal (and they will have you name and
  118. address in it... so you have interest as not to let anybody
  119. "accidentally" get a copy of it |) But enough of that, just
  120. make sure to read the FORM.DOC if you are interested in getting
  121. the full version of the program.
  122.  
  123.      That's about all I had to say for the introduction. The
  124. rest of this file will be a quick description of all the
  125. options in the program and tips on how to get most out of
  126. SCHEDULE OPTIMIZER v1.1. This manual, again, might be a bit
  127. short, but time is pressing. I will try to improve all this by
  128. the second version. In the meantime, for any comments,
  129. questions, or suggestions you can contact me at any of
  130. the addresses below. I really hope you find this program
  131. as usefull as I did.
  132.  
  133.      Thanks to Holly Ordway for testing the program and helping me
  134. solve some 'technical difficulties'.
  135.  
  136.  
  137.  
  138.  
  139.  
  140.                               NLL SOFT
  141.                               606-B Brown. UMASS
  142.                               Amherst, MA 01003
  143.  
  144.                               (413) 546 1143                    
  145.  
  146. or on the internet (I check my mail several times a day!):
  147.  
  148.                               nllopis@umass.ecs.edu
  149.  
  150.      
  151.                               Noel Llopis
  152.                               NLL SOFT - 1993
  153.  
  154.  
  155.  
  156.  
  157.  
  158.  
  159.  
  160.  
  161.      MAIN MENU.
  162.  
  163.      This is almost just like any plain old database. The
  164. actual number of classes in memory is displayed just above the
  165. main menu.
  166.  
  167.      The options you have are:
  168.  
  169.      [1]. Enter a new class. Simply asks you for the data for a
  170.      new class entry. The format of any entry is best
  171.      described with an example:
  172.  
  173.           Departament and number        : CHEM112
  174.           Class description             : General Chemistry II
  175.           Number of credits             : 4
  176.           Class this one must go with   : 
  177.           Is this a class you must include in your final
  178.           schedule (Y/N)? Y
  179.           1.
  180.                Section                  : 1
  181.                Starting time            : 9:05AM
  182.                Ending time              : 9:55AM
  183.                Days of the week         : MWF
  184.                Schedule #               : 114374
  185.           2.
  186.                .
  187.                .
  188.                .
  189.  
  190.           Whenever you are done entering the different times
  191.      a class is offered at, simply leave the section number
  192.      blank. That will return you to the main menu and will add
  193.      the class to the database.
  194.           When you are asked for the "class this one must go with",
  195.      you have to enter the class department and number the way you
  196.      did before, if this class must be taken together with some
  197.      other. The reason for this option is in case you have two classes
  198.      (say a lecture and a lab) that must be taken together or not at
  199.      all. If you simply put them both down and they are optional, the
  200.      program might choose either one of them, not necesserely both at
  201.      the time. Remember that you only refer to a class you entered
  202.      before, not at some class you are going to add later.
  203.           The question "Is this a class you must include in
  204.      your final schedule?" is made to distinguish between the
  205.      classes you have to take and the optional classes; this
  206.      way you might include 4 classes you must take and 5
  207.      classes you would like to take, and the computer will find
  208.      for you which ones of those 5 classes will make a better
  209.      schedule... but more of that later, in the section on
  210.      CALCULATE BEST SCHEDULE and HOW TO GET MOST OF SCHEDOP
  211.      v1.1.
  212.  
  213.      [2]. Modify a class. The first thing this will show you is
  214.      a list of all the classes in memory at the moment, and
  215.      will allow you to enter the number of the class you want
  216.      to edit (you can press + or - to see more pages of
  217.      classes... but if you have that many you are really going
  218.      to have fun when you try to get the best schedule!). 
  219.           Once you have chosen which class you want to edit,
  220.      you will be asked to edit each one of the fields of the
  221.      class entry. It will be the same as when you enter a new
  222.      class, but this time the previous values of the class you
  223.      are editing will show as the default values, so if you
  224.      don't want to change most of them simply press RETURN and
  225.      nothing will change.
  226.           It is important to note that if you set the section
  227.      number of a certain time blank and press return, that
  228.      section and all the ones following will be deleted. Again,
  229.      as soon as you enter a blank section number the editing
  230.      will be done and you will be back to the list of all the
  231.      classes.
  232.  
  233.      [3]. Delete a class. You will be shown the already
  234.      falmiliar list of all the classes in memory at the moment.
  235.      To delete one simply enter its number. Use this feature
  236.      with caution since there is no recovery option (unless you
  237.      saved it before).
  238.  
  239.      [4]. List all classes. Again the list of all classes will
  240.      appear on the screen. To get more information on any of
  241.      the classes just enter its number and all the data you
  242.      previously entered will be displayed (description,
  243.      credits, times offered, etc).
  244.  
  245.      [5]. Files. This will bring up the directory of the
  246.      classes previously saved and a menu with options. The
  247.      directory consists of the description of 10 files. If some
  248.      of the files have not been yet saved, a line with dots
  249.      will appear instead.
  250.           The options in this file menu are very straight
  251.      forward:
  252.           [1]. Restore. This will restore the data saved in one
  253.           of the 10 files. You will be asked which one you wish
  254.           to restore. If you leave it blank or enter an
  255.           incorrect number the operation will be cancelled.
  256.  
  257.           [2]. Save. With this you will be able to save any
  258.           changes or new classes you have entered. You can use
  259.           any of the 10 slots to save it. You will be asked for
  260.           a description of the information you are saving (that
  261.           will show up in the directory for future reference).
  262.           If you save it on top of an already used slot, the
  263.           actual description will be the default. Again, a
  264.           blank description or ESC will cancel the operation.
  265.           ** NOTE ** : This option is only available in the
  266.           REGISTERED VERSION. 
  267.  
  268.           [0]. Back to main menu. Need an explanation for this?
  269.  
  270.      [*]. Process schedule. This is what SCHEDULE OPTIMIZER
  271.      really is. Read the next section for full explanation.
  272.  
  273.      [0]. Exit program. It will exit to DOS. If you have made
  274.      any changes since save/restore you will be prompted if you
  275.      really want to quit the program.
  276.           Note that here, as it will be the tendency all
  277.      throughout the program, 0 will always get you back to the
  278.      previous menu (or, in this case exit to DOS).
  279.  
  280.  
  281.  
  282.      SCHEDULE PROCESSING CENTER.
  283.  
  284.      This is the hard core of the program. So far it has been
  285. like a simple database; this is where the real power of SCHEDOP
  286. starts.
  287.      Now it will follow a description of all the options in
  288. this part. It is intenteded to be most of a reference manual
  289. than a tutorial on how to use it. For an explanation on how to
  290. optimize your schedule (in the case you can't figure it out
  291. yourself from the menus), read the next section.
  292.  
  293.      [1]. Show all possible compatible schedules. It's exactly
  294.      what it says. With the classes actually loaded in memory,
  295.      the computer will try to make all possible combinations of
  296.      the classes (trying all the different times). All
  297.      combinations with no conflicts will be reported.
  298.           If you have some classes marked as optional, all
  299.      combinations with and WITHOUT them will also be reported.
  300.      All those schedule combinations will be the ones to
  301.      evaluate later to find the best schedule of all.
  302.           Once the calculation is done it will report how many
  303.      possible schedules where found and it will display them in
  304.      the output device (could be on the screen, printer or a
  305.      text file). It can show them in text or "graphic"
  306.      representation, but more of this under [4]. Settings.
  307.           Since calculating all the schedules is a time
  308.      consuming process (depends a lot on how many classes you
  309.      have), it will only be calculated once, displaying the
  310.      classes inmediately the second time you try this option.
  311.           Obviously, the preferences you defined will not affect
  312.      this at all. All schedules that do not have a time conflict
  313.      will be reported.
  314.  
  315.      [2]. Show best possbile schedule. Also doesn't need much
  316.      explanation, it will calculate the best schedule based on
  317.      your preferences. Once it has found the best schedules (is
  318.      quite possible that several schedules scored the same),
  319.      they will be shown on the output device in the same way as
  320.      before.
  321.           This is even a slower process than calculating all
  322.      combinations, and the more possible schedules, the longer
  323.      it will take. Don't think the computer "froze up" or
  324.      anything, if there are still little dots being printed on
  325.      the screen... you are all set, just be a little patient.
  326.      Again, as with the previous option, it will only need to
  327.      calculate it once (luckyly!), showing the best schedules
  328.      right away after the first time. It will have to
  329.      recalculate everything if you change the preferences or
  330.      exit to the main menu, though.
  331.      ** NOTE **: This option will only be available in the
  332.      REGISTERED VERSION.
  333.  
  334.      [3]. Define schedule characteristics. From here you will
  335.      be able to "tell" the computer how your ideal schedule
  336.      would be. For this you will be shown the actual
  337.      preferences and given the options to modify them, restore
  338.      or save them. Whenever you save the preferences, they will
  339.      be the default next time you run the program.
  340.           The different characteristics you can change to fit
  341.      your likes are:
  342.      - Optimum number of credits.
  343.      - Importance of having that exact number of credits.*
  344.      - Importance of having less credits.*
  345.      - Importance of having more credits.*
  346.      - Importance of having a compact schedule (with not many
  347.      "wholes" in between classes that is).*
  348.      - Importance of an evenly distribution of classes - having
  349.        the same number of hours every day.*
  350.      - Preferred days to have more hours.
  351.      - Preferred days to have less hours.
  352.      - Optimum time to start classes.
  353.      - Importance of starting at that time.*
  354.      - Importance of starting before that time.*
  355.      - Importance of starting after.*
  356.      - End classes as soon as possible.
  357.      - Optimum time to end classes.
  358.      - Importance of ending classes at that time.*
  359.      - Importance of ending before that time.*
  360.      - Importance of ending after that time.*
  361.      - Take weekends into account when doing calculations.
  362.      - Times at which you prefer not to have classes and     
  363.      importance of each of those times.
  364.      
  365.           If you decide to modify the current preferences you
  366.      will be asked every single one of these questions. The
  367.      current values will be shown as the default ones.
  368.           The characteristics marked with an asterisk (*) above
  369.      are rating characteristics. That is, it's not an amount, a
  370.      time or a day they are asking you, but a rating. By that
  371.      you have to answer "how much would you like...?" And give
  372.      it a rating from 0 to 10. The rating scale could be
  373.      something like:
  374.           10 - YES! I would love that.
  375.           9  - Yes, it would be very good.
  376.           8  - That'd be cool.
  377.           7  - I guess that'd be OK.
  378.           6  - Hmmm.. I guess so.
  379.           5  - I really don't give a damn about that.
  380.           4  - Naaahh, why bother with that.
  381.           3  - I think I rather not.
  382.           2  - Nope, I don't like that much.
  383.           1  - No, that's really bad.
  384.           0  - NO WAY I'M GOING TO DO THAT!!!
  385.      
  386.           For the rest of the questions just answer whatever
  387.      they ask you to as trully as you can. Then those
  388.      preferences you have entered will be taken into account to
  389.      decide which one of all the possible schedules is most
  390.      likely to fit all your needs.
  391.  
  392.  
  393.  
  394.  
  395.      [4]. Settings. This will bring another menu from which you
  396.      can decide how you want the output to be, and where you
  397.      want it outputted to.
  398.  
  399.           [1]. Mode: Normal/Graphic/Both. Pressing this key you
  400.           will switch between the three representation modes.
  401.           The one selected at the moment is the one with the
  402.           square brakets around. 
  403.           - In normal mode the list of the possible or best
  404.           schedules will be shown as the list of the classes
  405.           with the time, days and section number.
  406.           - In graphic mode the list will be a graphical
  407.           representation of the schedules as it would be drawn
  408.           in a piece of paper, with the days of the week, the
  409.           times, and the classes in the little boxes. If a
  410.           class occupies more than one box its name will appear
  411.           in the following box (that doesn't mean you have the
  412.           same class twice in a row, but that the class is two
  413.           boxes long!).
  414.           - In "both" mode, both representations will be shown,
  415.           one after the other for every schedule.
  416.  
  417.           [2]. Output: Screen/Printer/File. Again, pressing
  418.           that key will switch between the three options. This
  419.           is the output device the schedules are going to be
  420.           sent to (in any mode). If the screen is selected...
  421.           (hmm.. I wonder what is going to happen!). If "file"
  422.           is selected, after the computer is done computing the
  423.           schedules you will be asked for a file name to output
  424.           the information to. A word of caution about the
  425.           printer: it will detect if the printer is on line
  426.           whenever it is going to START printing the output.
  427.           Once it is started, if you turn the printer off it
  428.           might give a runtime error (yes, remember, it was
  429.           written in Pascal). So just be a little carefull.
  430.           Also... I think it might only do LPT1 for the printer
  431.           port, that will be something to work on for version
  432.           2.xx.
  433.  
  434.           [3]. Screen mode: BW80x25/80x25/80x43/80x50. This is
  435.           the screen mode when the graphical representation of
  436.           the schedule is shown on the screen. Usually the mode
  437.           80x50 will give you the best results - you can see
  438.           the most hours and more clearly spaced -, but it
  439.           requires an EGA or VGA card. If you don't have one
  440.           you won't even be able to select the two last
  441.           options, being your best mode the second one,
  442.           (default) 80x25. The first mode, BW80x25, is the same
  443.           as 80x25 but in black and white only. Is not that it
  444.           makes much difference right now, but it might in
  445.           later versions.
  446.  
  447.           [4]. Graphic schedule start and end. Those are the
  448.           times to start and end drawing the graphical
  449.           representation of the schedule. The ideal would be to
  450.           have all the hours there, but what are all the hours?
  451.           The 24 hours? Somebody might only want to have it
  452.           from 9AM to 5PM for instance, or other people with
  453.           night classes might prefer to have it go from 4PM to
  454.           10PM. 
  455.                Once you have selected those times the schedule
  456.           will be scaled to occupy the most screen as possible
  457.           to show all the details.
  458.  
  459.           [0]. Back, back. 0 will always get you back!
  460.  
  461.      [0]. Back to main menu. Here remember that whenver you go
  462.      back to the main menu and then return to the processing
  463.      center, all calculations of possible and best schedules
  464.      will have to be computed again.
  465.  
  466.      And that's all for the description of the options of the
  467. program. Now I would urge you to read the next section,
  468. possibly the most important one, before making your final
  469. decision on the schedule for next semester.
  470.  
  471.  
  472.  
  473.  
  474.  
  475.  
  476.  
  477.  
  478.  
  479.  
  480.  
  481.  
  482.  
  483.  
  484.  
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.      HOW TO GET MOST OUT OF SCHEDOP v1.1.
  509.  
  510.      To make good use out of SCHEDULE OPTIMIZER v1.1 is very
  511. important to realize a few things. Don't simply enter in all
  512. the classes you want and ask for the best schedule, it might
  513. turn out there's one you like better. I guess a section on
  514. frequently asked questions would be the best thing to do now,
  515. but since this is the first release I haven't had any "real"
  516. questions yet (keep them coming though, OK?). So I will point
  517. out a few tips that might be handy to keep in mind while you
  518. are using SCHEDOP.
  519.  
  520.      - The "best" computer generated schedule might not be the
  521.      "best" (!!). If this is true, why all this program? I
  522.      should explain that in a little more detail. What I mean
  523.      is that the computer will blindly take the preferences you
  524.      defined, take each one of the possible schedules and give
  525.      them a score accordingly. The one(s) with the best score
  526.      will be reported as the "best" ones. And that will always
  527.      be true. Why then shouldn't we trust it right off hand?
  528.      Because of.. human error - as our friend Hal 9000 would
  529.      say. When you entered a 7 in the rating for a compact
  530.      schedule it was translated as "multiply the compactness
  531.      score by 0.5", while you might have meant to give this
  532.      score a little more importance than that.
  533.           What to do then? First go ahead, fill the preferences
  534.      as well as you can, thinking them over and making sure
  535.      that's what you really want. Then get the best schedule.
  536.      If you like it a lot, hey, great, that's what you were
  537.      looking for. If you don't like that much, there might be
  538.      still a better one. Go back over the preferenes and give a
  539.      little more importance to that factor that you didn't
  540.      quite get in this last schedule (if there were lots of
  541.      "holes", give a little more to the compact schedule
  542.      score). Then try again and see if you get anything
  543.      different. In other words, experiment with it a bit.
  544.           If still that fails you can always go through all the
  545.      possible schedules and see if you like one of them better.
  546.      Sometimes it is impossible to make things fit the way you
  547.      like them! If you only have a few classes this might look
  548.      like a good solution, but as soon as you have a few more,
  549.      offered quite a few different times and especially if they
  550.      are optional, then you are going to have a really fun time
  551.      going through the thousands of possible combinations. Use
  552.      this as last ressource!
  553.  
  554.      - Keep several different classes saved. It has proven to
  555.      me very usefull to have like 3 different files saved and
  556.      work with them. In one you might include the classes you
  557.      have to take, and in the others those classes plus groups
  558.      of classes you would like to take. That's much easier than
  559.      going through the old files adding and deleting classes.
  560.  
  561.      
  562.      - Is it too slow? It might be quite slow, specially if you
  563.      are using an old 8088-86. If you have a 386 or more...
  564.      just skit this section, you don't need it.
  565.           What slows this program the most is having lots of
  566.      data to process. This happens when there are lots of
  567.      classes (although people usually take no more than 10 at a
  568.      time), lots of different times the classes are offered at
  569.      or having lots of alternative classes. 
  570.           A class with a lot of different alternative times is
  571.      a real slow down for the program. Just have a look at this
  572.      semester's schedule book (for the UMMies that is) and look
  573.      at ENGLWP112. 68 different lectures!! That would take
  574.      almost as long to process as to type it into the database.
  575.      The way around that is to simply not include that class in
  576.      the calculations, and once you have a good schedule worked
  577.      out, since it is offered that many times, you should be
  578.      able to easily fit it in just by looking at the times
  579.      offered. Just remember, when you answer the question
  580.      "optimum number of credits", to subtract the number of
  581.      credits of the class you will add later on.
  582.           What about lots of optional classes? That really
  583.      slows it down too. To give you an idea, the classes I
  584.      planned to have resulted in 72 different possible
  585.      schedules. When I changed two of the classes to optional
  586.      and added a couple more optional, the possible schedules
  587.      skyrocketed up to 576! Moral: keep the number of optional
  588.      classes down. No, seriously, what you might do instead is
  589.      to have several different files, each one containing all
  590.      non-optional classes and then comparing the best schedule
  591.      of each among each other and decide which one is best.
  592.           If there are enough requests I might include an
  593.      executable file in the next version with 286 code which
  594.      would make it run even faster on 286 machines or higher.
  595.      For the moment I would like to keep compatible with all
  596.      PC's (I will still include an executable for the 8088 out
  597.      there... don't worry!).
  598.  
  599.      
  600.      And this should do it. If you have read this manual you
  601. should be able to use SCHEDULE OPTIMIZER v1.1 to its full
  602. capacity. Enjoy the program and send your comments to make
  603. better future releases.
  604.  
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.                                         (c) NLL SOFT - 1993
  615.